package cn.b.sky.mes.mm.dao;

import java.util.List;

import cn.b.sky.mes.mm.model.MoveType;
import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.mm.model.condition.MoveTypeCondition;

/**
 * 
 * <strong>Title : MoveTypeDao.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.mm.dao<br>
 * </strong> <strong>Description : </strong>移动类型持久层接口<br>
 * <strong>Create on : 2016年2月29日 上午11:33:52<br>
 * </strong>
 * <p> 
 * 
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface MoveTypeDao {

  /**
   * 
   * <strong>Title : selectMoveTypeListByCondition<br>
   * </strong> <strong>Description : </strong>根据查询条件查询移动类型集合<br>
   * <strong>Create on : 2016年2月29日 上午11:28:37<br>
   * </strong>
   * <p>
   * 
   * @param condition
   * @return List<MoveType>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<MoveType> selectMoveTypeListByCondition(MoveTypeCondition condition);

  /**
   * 
   * <strong>Title : selectMoveTypeCountByCondition<br>
   * </strong> <strong>Description : </strong>根据查询条件查询移动类型集合数量<br>
   * <strong>Create on : 2016年2月29日 上午11:29:17<br>
   * </strong>
   * <p>
   * 
   * @param condition
   * @return int
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectMoveTypeCountByCondition(MoveTypeCondition condition);

  /**
   * 
   * <strong>Title : getMoveType<br>
   * </strong> <strong>Description : </strong>根据主键查询移动类型<br>
   * <strong>Create on : 2016年2月29日 上午11:29:33<br>
   * </strong>
   * <p>
   * 
   * @param siteCode
   * @param moveTypeCode
   * @return MoveType
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  MoveType getMoveType(@Param("siteCode") String siteCode, @Param("moveTypeCode") String moveTypeCode);

  /**
   * 
   * <strong>Title : insertMoveType<br>
   * </strong> <strong>Description : </strong>保存移动类型<br>
   * <strong>Create on : 2016年2月29日 上午11:29:49<br>
   * </strong>
   * <p>
   * 
   * @param moveType
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertMoveType(MoveType moveType);

  /**
   * 
   * <strong>Title : updateMoveType<br>
   * </strong> <strong>Description : </strong>更新移动类型<br>
   * <strong>Create on : 2016年2月29日 上午11:30:12<br>
   * </strong>
   * <p>
   * 
   * @param moveType
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateMoveType(MoveType moveType);

  /**
   * 
   * <strong>Title : deleteMoveType<br>
   * </strong> <strong>Description : </strong>删除移动类型<br>
   * <strong>Create on : 2016年2月29日 上午11:30:29<br>
   * </strong>
   * <p>
   * 
   * @param siteCode
   * @param moveTypeCode
   *            void
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteMoveType(@Param("siteCode") String siteCode, @Param("moveTypeCode") String moveTypeCode);

  /**
   * <strong>Title : selectMoveTypeListByCondition<br>
   * </strong> <strong>Description : </strong>选择所有移动类型<br>
   * <strong>Create on : 2016年3月2日 下午6:34:12<br>
   * </strong>
   * <p>
   * 
   * @param siteCode
   * @param lockFlag
   * @return List<MoveType>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<MoveType> selectAllMoveTypeList(MoveTypeCondition condition);

  /**
   * 
   * <strong>Title : selectMoveTypeSuggests<br></strong>
   * <strong>Description : </strong>移动类型搜索建议<br> 
   * <strong>Create on : 2016年4月11日 下午7:57:11<br></strong>
   * <p>
   * @param condition
   * @return
   * List<MoveType>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人    |    修改日期    |    修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<MoveType> selectMoveTypeSuggests(MoveTypeCondition condition);

}
